Mobile AP & Modem
contents
1. 하드웨어 아키텍처 (The Hardware Architecture)
퀄컴 스냅드래곤 칩(흔히 말하는 "모바일 AP") 내부에는 크게 두 가지 세상이 존재합니다.
- AP (Application Processor): 안드로이드 OS, 앱, UI를 실행하는 부분입니다.
- BP (Baseband Processor / Modem): 100% 무선 통신 물리 법칙만을 처리하기 위해 설계된 특수 컴퓨터(주로 Hexagon DSP 사용)입니다. 질문하신 핵심 부품이 바로 이것입니다.
여러분이 유심(USIM) 카드를 꽂으면, 그 유심은 물리적으로 이 베이스밴드 프로세서(모뎀) 와 연결됩니다.
2. 중계기(Repeater)의 역할
먼저 중계기의 정체를 명확히 해야 합니다.
가정이나 지하에 설치된 일반적인 이동통신사 중계기는 보통 아날로그 RF 증폭기 (1계층 장비) 입니다.
- 작동 원리: 중계기는 멀리 있는 기지국(Cell Tower)에서 오는 미약한 전파를 듣고, 전압을 증폭시켜 더 크게 소리 지르는(재송출하는) 역할을 합니다.
- 퀄컴 모뎀의 관점: 모뎀은 중계기의 존재를 전혀 모릅니다. 모뎀이 "셀 탐색(Cell Search)"을 할 때, 중계기 쪽에서 매우 강한 신호가 오는 것을 감지합니다. 모뎀은 중계기를 기지국이라고 착각하고 그저 가장 강한 신호에 연결할 뿐입니다.
- 연결 방식: 순수하게 RF(무선 주파수) 파동을 통한 연결입니다. 중계기에 별도로 "로그인"하는 절차는 없습니다. 중계기는 그저 "확성기"일 뿐입니다.
3. 단계별 작동 과정: 전원 켜짐부터 연결까지
휴대폰 전원을 켰을 때 퀄컴 모뎀 내부에서 일어나는 정확한 순서(Call Flow)는 다음과 같습니다.
1단계: 물리적 신호 탐색 (1계층)
- 전원 On: 퀄컴 모뎀이 깨어납니다.
- 주파수 스캔: 하드웨어가 지원하는 모든 라디오 주파수(LTE 밴드 1, 3, 5 등)를 스캔합니다.
- 동기화 신호(PSS/SSS) 감지: 기지국들이 방송하는 동기화 신호를 찾습니다.
- 선택: 가장 신호가 센 곳을 찾습니다. 만약 중계기가 근처에 있다면 그 신호가 가장 강력할 것입니다. 모뎀은 이 주파수에 고정(Lock)합니다.
2단계: 유심(USIM) 읽기 (신원 확인)
- 모뎀이 USIM 카드 핀에 전원을 공급합니다.
- 모뎀은 유심에서 IMSI(국제 모바일 가입자 식별 번호)를 읽어옵니다. 이는 오직 유심에만 저장된 고유 ID입니다.
- 참고: 안드로이드 OS(AP)가 하는 일이 아닙니다. 보안을 위해 모뎀이 직접 수행합니다.
3단계: RRC 연결 (3계층 - "여보세요")
- 모뎀이 공중으로
RRC Connection Request메시지를 보냅니다. - 경로: 모뎀 안테나 $\rightarrow$ 중계기(증폭) $\rightarrow$ 기지국(eNodeB).
- 기지국이 응답합니다: "그래, 신호 받았다. 우리끼리 대화할 채널을 하나 줄게."
4단계: 인증 (Authentication - 핵심 보안 절차)
이 단계에서 유심이 실제로 사용됩니다. 네트워크는 당신이 진짜 가입자인지 증명하라고 요구하고, 당신은 네트워크가 가짜 기지국이 아닌지 확인해야 합니다.
- 도전(Challenge): 통신사의 코어 네트워크가 모뎀에게 무작위 숫자(난수 A)를 보냅니다.
- 계산: 퀄컴 모뎀은 이 숫자(A)를 USIM 카드 안으로 밀어 넣습니다.
- 비밀키($K_i$): 유심 내부에는 절대로 밖으로 유출되지 않는 비밀키($K_i$)가 들어 있습니다. 유심 칩 내부에서 자체적으로 계산을 수행합니다:
결과값 = 연산(난수 A + 비밀키). - 응답(Response): 유심은
결과값만 모뎀에게 뱉어내고, 모뎀은 이를 네트워크로 전송합니다. - 검증: 네트워크가 가진 정답과 유심이 계산한 값이 일치하면 인증이 완료됩니다.
5단계: 부착(Attach) 및 IP 할당
- 인증이 끝나면 모뎀은
Attach Request(망 접속 요청)를 보냅니다. - 네트워크는 이 기기를 위한 터널(Bearer)을 생성합니다.
- 네트워크가 모뎀에게 IP 주소를 할당합니다.
- 퀄컴 모뎀은 이제 AP(안드로이드)에게 보고합니다: "연결되었습니다. 여기 네트워크 인터페이스(예:
rmnet_data0)를 쓰세요."
4. 데이터 흐름 (실제 작동 단계)
연결된 후, 여러분이 웹 서핑을 할 때 데이터 패킷은 다음과 같이 이동합니다.
- 앱(App): 웹 브라우저가 요청을 보내면 AP(CPU)가 IP 패킷을 생성합니다.
- 드라이버: AP는 이 패킷을 퀄컴 모뎀 드라이버로 넘깁니다.
- 모뎀 처리:
- 모뎀은 IP 패킷을 암호화합니다 (PDCP 계층).
- 전송하기 좋게 잘게 쪼갭니다 (RLC 계층).
- 오류 정정 코드를 입힙니다 (MAC/PHY 계층).
- 모뎀 전송: 모뎀은 이 0과 1의 비트들을 아날로그 전파(Radio Waves) 로 변환하여 안테나로 쏘아 보냅니다.
- 중계기(Repeater)의 동작: 중계기는 이 미약한 전파를 잡아서, 순식간에 전력을 증폭시킨 뒤 기지국을 향해 다시 쏘아줍니다.
- 기지국(Tower)의 동작: 기지국은 전파를 받아 디지털로 변환한 뒤, 광케이블을 통해 통신사 코어 네트워크(EPC/5GC)를 거쳐 인터넷으로 내보냅니다.
요약 (개발자 관점)
- 모바일 AP: 전체 지휘관 (OS 실행).
- 퀄컴 모뎀: 무전병 (실제 통신 담당).
- USIM: 암호표가 든 신분증 (비밀키 저장소).
- 중계기: 단순한 확성기 (증폭기). 모뎀의 목소리가 기지국에 닿도록 소리를 키워줄 뿐, 지능적인 통신 대상은 아닙니다.
중계기 네트워크와 모뎀 네트워크 간의 통신을 원한다면
1부: 다운링크(Downlink) 상세 분석 (기지국이 나에게 말하는 법)
다운링크는 기지국(Tower)에서 내 기기(UE)로 데이터가 흘러오는 것을 말합니다. 이것은 단순한 데이터의 흐름이 아니라, 고도로 정교하게 짜인 "테트리스" 게임과 같습니다.
1. 기술적 핵심: OFDMA ("격자판")
현대의 4G LTE나 5G 네트워크에서 공중의 전파는 하나의 큰 파이프가 아닙니다. 시간(Time) 과 주파수(Frequency) 로 잘게 쪼개진 격자판입니다.
- 주파수: 채널(예: 20MHz 대역폭)은 수백 개의 얇은 "부반송파(Sub-carriers)"로 잘립니다.
- 시간: 시간은 0.5밀리초(ms) 단위의 아주 짧은 "슬롯(Slot)"으로 잘립니다.
- 자원 블록 (Resource Block, RB): 이 격자판의 최소 단위입니다 (1 슬롯 x 12 부반송파).
다운링크 처리 과정:
- 스케줄러 (뇌): 기지국 내부의 컴퓨터는 절대적인 "독재자"입니다. 매 1밀리초마다 모든 사용자(나, 이웃, 지나가는 차 등)를 감시합니다.
- 할당 (Allocation): 사용자의 필요량과 신호 품질에 따라 특정 "자원 블록"을 지정해 줍니다.
- 예시: "사용자 A(당신), 넷플릭스를 보고 있으니 블록 1번부터 10번까지 써. 사용자 B, 문자 왔으니 블록 11번만 써."
- 브로드캐스팅: 기지국은 이 모든 데이터를 한 번에 공중에 쏘아 보냅니다.
- 필터링: 당신의 모뎀은 공중의 모든 신호를 듣지만, 자신의 ID(C-RNTI)에 할당된 블록만 해독하고 나머지는 무시합니다.
2. 변조 (Modulation - 신호 강도가 중요한 이유)
하나의 자원 블록에 얼마나 많은 데이터를 담을 수 있을까요? 그것은 신호 품질(SINR)에 달렸습니다.
- QPSK (신호 약함): 파동 하나에 2비트만 보냅니다. 느리지만 튼튼합니다. (천천히 또박또박 말하는 것과 같습니다).
- 256-QAM (신호 강함): 파동 하나에 8비트를 꽉 채워 보냅니다. 엄청나게 빠르지만 깨지기 쉽습니다. (엄청나게 빠른 속사포 랩과 같습니다. 아주 깨끗하게 들려야만 이해할 수 있습니다).
- 중계기의 역할: 중계기는 신호 강도를 높여주므로, 기지국이 당신에게 더 높은 단계의 변조(256-QAM) 를 사용할 수 있게 합니다. 즉, 같은 시간을 써도 다운로드 속도가 빨라집니다.
2부: 네트워크 시나리오 분석
"중계기를 통해 연결된 기기(A)가, 같은 통신사 네트워크 내의 모뎀/핫스팟에 연결된 다른 기기(B)에 접속할 수 있나요?"
이것은 네트워크 토폴로지(구조)에 대한 오해에서 비롯되는 전형적인 질문입니다.
시나리오 상황:
- 기기 A (스마트폰): 중계기(Repeater) $\rightarrow$ 기지국에 무선 연결됨.
- 기기 B (노트북): LTE 모뎀(또는 핫스팟) $\rightarrow$ 기지국에 유선/Wi-Fi로 연결됨.
둘 다 동일한 통신사(예: SKT/KT/LGU+)를 사용하고 있으므로 물리적으로는 같은 통신사 망에 있습니다.
정답:
아니요, 서로 직접 통신(접속)할 수 없습니다.
그 이유를 3가지 장벽으로 상세히 설명해 드립니다.
장벽 1: 중계기는 1계층, 모뎀은 3계층
- 기기 A (중계기 사용): 중계기는 단순한 증폭기입니다. IP를 주지 않습니다. 기기 A는 통신사 코어 네트워크로부터 직접 IP를 받습니다.
- A의 IP:
10.50.1.5(통신사 사설 IP).
- A의 IP:
- 기기 B (모뎀 사용): 모뎀은 라우터입니다. 자신만의 작은 로컬 네트워크(LAN)를 만듭니다.
- 모뎀의 WAN IP:
10.50.2.8(통신사 사설 IP). - B의 내부 IP:
192.168.1.10(모뎀이 준 사설 IP).
- 모뎀의 WAN IP:
기기 A는 통신사 망이라는 거대한 바다에 떠 있고, 기기 B는 모뎀이라는 잠수함(NAT) 안에 숨어 있습니다.
장벽 2: 통신사급 NAT (CGNAT) 및 클라이언트 격리
통신사가 기기 A와 모뎀에게 주는 IP(10.x.x.x 등)는 공인 IP가 아닌 사설 IP입니다.
- 이들은 통신사의 거대한 방화벽 뒤에 있습니다.
- 통신사 내부 라우터는 보안을 위해 P2P(Client-to-Client) 통신을 차단(Client Isolation) 하도록 설정되어 있습니다.
- 이는 해커가 같은 기지국에 접속해 있다고 해서 당신의 폰을 스캔하거나 해킹하지 못하도록 막는 보호 조치입니다.
장벽 3: 이중 NAT 문제 (Double NAT)
설령 통신사가 A와 모뎀 간의 통신을 허용해 준다고 가정하더라도 문제입니다.
- 기기 A가 모뎀으로 패킷을 보냅니다.
- 모뎀이 받습니다. 하지만 모뎀은 기본적으로 방화벽 역할을 합니다. 외부(WAN)에서 들어오는 요청 중, 내부에서 먼저 요청하지 않은 트래픽은 모두 차단(Drop) 합니다.
- 모뎀에 포트 포워딩(Port Forwarding) 을 설정하고 공인 IP를 쓰지 않는 한, 접속은 불가능합니다.
예외: 통신이 가능한 유일한 경우
기기 A와 기기 B가 통신하려면 반드시 동일한 LAN(로컬 네트워크) 안에 있어야 합니다.
- 안 되는 경우:
- 폰 $\rightarrow$ 중계기 $\rightarrow$ 기지국
- 노트북 $\rightarrow$ 모뎀 $\rightarrow$ 기지국
- (이 둘은 인터넷상에서 남남입니다)
- 되는 경우:
- 모뎀(핫스팟) $\rightarrow$ 중계기 $\rightarrow$ 기지국
- 폰 $\rightarrow$ Wi-Fi로 모뎀에 접속
- 노트북 $\rightarrow$ 랜선으로 모뎀에 접속
- (이제 둘 다
192.168.1.x대역의 IP를 받습니다. 모뎀이 둘 사이를 연결해 줍니다. 중계기는 모뎀의 인터넷 연결만 도와줄 뿐입니다).
요약 및 해결책
기기 A가 중계기의 신호를 잡고 있고, 기기 B는 별도의 LTE 모뎀 뒤에 숨어 있다면, 서로는 절대 대화할 수 없습니다. 통신사의 보안 정책(CGNAT/격리) 때문입니다.
만약 꼭 통신해야 한다면:
두 기기에 Tailscale, ZeroTier, 또는 VPN 같은 가상 네트워크 소프트웨어를 설치해야 합니다. 이렇게 하면 통신사의 장벽을 뚫고 논리적으로 같은 방(LAN)에 있는 것처럼 연결해 줍니다.
references